Student-controlled text message reminders with third party  systems

ABSTRACT

A computing device and computer-implemented method to provide user-control short message service (SMS). The method begins with accessing, by a server, data in a third-party format from a third-party server. The server and the third-party server are controlled by different business entities. Next, the data in the third-party format is filtered, which has been accessed according to user preferences, the user preferences including a mobile device identifier. Next, the data in the third-party format is converted which as specified by the user preferences into a format compatible with the SMS protocol or an instant message for receipt by a messaging app. Finally, the data is sent in which has been converted into the SMS format or instant message to the mobile device as specified by the mobile device identifier.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority from and is related to U.S. applicationSer. No. 17/228,442, filed Apr. 12, 2021, which is claims priority toand is related to U.S. Provisional Application No. 63/008,802, filedApr. 12, 2020, each of these previously filed applications are herebyincorporated into the present application by reference in theirentirety.

BACKGROUND

The disclosure relates to a system and method for user-controlledmessage reminders of with third-party systems and in particular foruser-controlled text message reminders of academic assignments withlearning management systems.

Learning management systems (LMS), such as, Canvas, Google Classroom,Blackboard, Schoology, Docebo, TalentLMS, Edmodo continue to grow inpopularity. For example, Canvas, is a web-based LMS now used by morethan 3,000 universities, school districts, and institutions around theworld. LMS systems deliver and manage all types of content, includingvideo, courses, and documents. In the education and higher educationmarkets, an LMS will include a variety of functionality that is similarto corporate but will have features such as rubrics, teacher andinstructor facilitated learning, a discussion board, and often the useof a syllabus.

Canvas is a powerful and flexible platform that includes many featuresand allows third-party developers to offer additional features. Forexample, Canvas offers SMS notifications, including course content. Thisis how Canvas notifies users about their upcoming planner items. Onelimitation with Canvas's system is that students are only notified whena planner item is posted or changed. As a result, students can missassignments.

SUMMARY

In one example disclosed is a method for providing a user-controlmessage service. The message service can be one of a short messageservice (SMS) MMS, GroupMe, FB Messenger, and a voice call. The methodbegins with accessing, by a server, data in a third-party format from athird-party server, where the server and the third-party server arecontrolled by different business entities. The third-party server can berunning one of any one or more of a learning management system, emailsystem, and other data sources. As an example, the accessing isperformed using one or more of API calls, web scrapping, file transferprotocol (FTP), and http methods. In another example the accessingincludes accessing reminders from a syllabus using an API or opticalcharacter recognition.

Next, the data in the third-party format is filtered, which has beenaccessed according to user preferences, the user preferences including amobile device identifier. The filtering includes one or more of showcourses, skip courses, set days, and skip completed to-dos. Thefiltering may also include one or more of planner is empty, time andtime-zone, active status, texts paused, and skipped days of week.

Next, the data in the third-party format is converted which as specifiedby the user preferences into a format compatible with the messageservice. In one example, the converting the data in the third-partyformat into a format compatible with the message service is one of a SMSprotocol or an instant message for receipt by a messaging app. The userpreferences for formatting may include one or more of class, customizedcourse names, birthday, time format, time-zone, name, and limit reminderamount.

The user preferences for formatting include one or more of customizedcourse names, time format, time-zone, name, and limit reminder amount.Finally, the data is sent in which has been converted into the messageservice to the mobile device as specified by the mobile deviceidentifier. In one example, the data is sent which has been convertedinto the SMS format to an SMS gateway to send to the mobile device asspecified by the mobile device identifier. For example, the data is sentwhich has been converted into the SMS format or instant message to themobile device as specified by the mobile device identifier. As anotherexample, the data is sent which has been converted into the SMS formatto an SMS gateway or through the use of a CPaaS API to send to themobile device as specified by the mobile device identifier.

In another example the process continues by accessing, by the server,data in an additional third-party format from an additional third-partyserver, wherein the server and the additional third-party server arecontrolled by different business entities. Next, the data is filtered inthe additional third-party format which has been accessed according touser preferences, the user preferences including a mobile deviceidentifier. Next, the data is converted in the additional third-partyformat which as specified by the user preferences into a formatcompatible with the message service. Finally, the data is sent which hasbeen converted into the message service to the mobile device asspecified by the mobile device identifier.

In yet another example, the process above includes receiving a requestfrom a plurality of users to join a collaborative group. In this examplethe filtering the data in the third-party format which has been accessedaccording to user preferences, the user preferences including a mobiledevice identifier for each of the plurality of users. And further inthis example, the sending the data which has been converted into themessage service includes sending to the mobile devices as specified bythe mobile device identifier for each of the plurality of users.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of the present disclosure, and theattendant advantages and features thereof, will be more readilyunderstood by reference to the following detailed description whenconsidered in conjunction with the accompanying drawings wherein:

FIG. 1 is an example flowchart of the system and method, according tothe present invention;

FIG. 2 is an example screenshot of a webpage where a first-time user cansign up for the service or a returning user can sign-in to theiraccount, according to the present invention;

FIG. 3 is a screenshot of example webpages where a user can add and/oredit their settings, according to the present invention;

FIG. 4 are a screenshot of an example webpage that a user can previewthe text message that would be received based on the settings, accordingto the present invention;

FIG. 5 is a sample text message a user would receive with upcomingassignments, according to the present invention;

FIG. 6 is a diagram of the data handling process, according to thepresent invention;

FIG. 7 is a table of user filter and formatting preferences, accordingto the present invention.

FIG. 8 is a flow chart of the overall process, according to the presentinvention;

FIG. 9 is a diagram depicting the operating environment, according tothe present invention; and

FIG. 10 is a block diagram illustrating one example of a client orserver information processing system, according to the presentinvention.

DETAILED DESCRIPTION

As required, embodiments are disclosed herein; however, it is to beunderstood that the disclosed embodiments are merely examples and thatthe methods described below can be embodied in various forms. Therefore,specific structural and functional details disclosed herein are not tobe interpreted as limiting, but merely as a representative basis forteaching one skilled in the art to variously employ the present subjectmatter in virtually any appropriately detailed structure and function.Further, the terms and phrases used herein are not intended to belimiting, but rather, to provide an understandable description of theconcepts.

The description of the present invention has been presented for purposesof illustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the invention. Theembodiment was chosen and described in order to best explain theprinciples of the invention and the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

The present invention is directed to a successfully commercializedversion of the software under the brand name Lazy Text™ App. In oneexample, the present invention to text users a list of the upcomingitems on their learning management systems, such as, but not limited tothe Canvas planner. The types of planner items that can be found on aplanner are assignments, quizzes, discussion topics, announcements, andcalendar events. The Lazy Texts App fetches the items from the user'sCanvas planner that are due within the number of days the userspecifies. It then filters the list based on the user's severalcustomizations and compiles one or more text messages to send.

Currently, up to three text messages are part of the Lazy Texts App, butthe disclosure contemplates additional text messages. The first textincludes a user's assignments, quizzes, and discussion posts; the secondtext includes a user's announcements; and the third text includes auser's calendar events. All users receive at least the first text, withthe last two texts being optional. Text messages display each planneritem by showing its due date, course, type (assignment, quiz, etc.), andname. Users may also opt to receive more than one text per day andselect the times at which the texts will be sent. Availablecustomizations options can depend on the subscription package that theuser selects.

The user personalizes their text message with customization options onthe Lazy Texts website, LazyTexts.com, where the user creates an accountwith their phone number. Their customizations are saved on their accountand can be changed at any time to be applied to the next text theyreceive. The next text they receive can be previewed on the website, andthe preview is updated whenever the user saves their changes.

The first customization option is their preferred first name (nickname)that they will be called in the opening sentence of the text. The userthen selects if they want the course associated with each planner itemto be included in their text. The user can also choose to omit certaincourses from a list of courses they are enrolled in. Users also have theoption to change the name of each course from that used in Canvas, wherethey are encouraged to shorten the name of their courses, to keep thetexts more concise, and therefore more readable for the user. The coursename change can also be reflected in their Canvas. Finally, users canset a limit to the planner items they receive, by both specifying themaximum number of days out for each planner item to be, and the maximumnumber of planner items to fully display in the text; the remainder ofplanner items are displayed as a number at the end of the text.

The user's customization options are stored in a database. They are setto default values when the user signs up on the website. The mainprogram that sends the texts runs independently of the website and ispulling the user's customization options at runtime. The website isintended first for the user to sign up to receive their texts and thenas a means for the user to log in easily to modify their customizationoptions.

As previously noted, Canvas does offer SMS notifications, includingcourse content. One problem with Canvas's system is that users are onlynotified when a planner item is posted or changed. Furthermore, thenotifications that Canvas offers for course content are notcustomizable. One aspect that sets the Lazy Texts App apart is that itis more user-friendly and gives the user a vast array of customizationoptions, as detailed above, to allow them to receive no more and no lessthan what they need to see to keep them organized.

Non-Limiting Definitions

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise.

The term “access” refers to gathering information from a third-partyapplication, such as a learning management system or calendaringapplication. Access is accomplished through API calls, web scrapping,file transfer protocol (FTP), and http methods.

The term “application programming interface” or API is an interface thatdefines interactions between multiple software applications. It definesthe kinds of calls or requests that can be made, how to make them, thedata formats that should be used, the conventions to follow, etc. APIsfor email systems such as GMAIL and Microsoft Outlook, learningmanagement systems, and other data sources are published by the softwareprovider.

To clarify the use of and to hereby provide notice to the public, thephrases “at least one of <A>, <B>, . . . and <N>” or “at least one of<A>, <B>, . . . <N>, or combinations thereof” or “<A>, <B>, . . . and/or<N>” are defined by the Applicant in the broadest sense, superseding anyother implied definitions hereinbefore or hereinafter unless expresslyasserted by the Applicant to the contrary, to mean one or more elementsselected from the group comprising A, B, . . . and N, that is to say,any combination of one or more of the elements A, B, . . . or Nincluding any one element alone or in combination with one or more ofthe other elements which may also include, in combination, additionalelements not listed.

The term “client device” is any device, such as a computer, laptop,smartphone, tablet, television, or other information processing devicein which web-browsers and apps can be processed.

The terms “comprises” and/or “comprising,” specify the presence ofstated features, steps, operations, elements, and/or components, but donot preclude the presence or addition of one or more other features,integers, steps, operations, elements, components, and/or groupsthereof.

The term “homogenous format” means a uniform, single structure orformat.

The term “message” is a short message service or instant message using amessaging app such a Discord, Facebook Messenger, iMessage, Signal,Slack, Telegram, WhatsApp, WeChat and QQ Messenger, Viber, Line, andSnapchat and other apps that enable instant messaging.

The term “SMS Gateway” is facilitate SMS traffic between businesses andmobile subscribers, including SMS for enterprises, content delivery, andentertainment services involving SMS, e.g. TV voting. Considering SMSmessaging performance and cost, as well as the level of messagingservices, SMS gateway providers can be classified as aggregators or SS7providers.

The term “SMS message” or short message service message is a textmessaging service component of most telephone, Internet, and mobiledevice systems. It uses standardized communication protocols that letmobile devices exchange short text messages. The service allows users tosend and receive messages of up to 160 characters (when entirelyalpha-numeric) to and from GSM mobiles. Although most SMS messages aresent from one mobile phone to another, support for the service hasexpanded to include other mobile technologies, such as ANSI CDMAnetworks and Digital AMPS.

The term “user preferences” means a customizable configuration valueused to select, filter, format and time when SMS message are sent basedon data from a third-party platform. User preferences include customizecourse names, time (e.g., message is sent at 5 AM), time-zone, name(e.g., Hey JOHN DOE, here are your upcoming reminders:), show courses(e.g., Biology Assignment: XYZ versus Assignment: XYZ), customize coursename (e.g., change BSC1101 to Bio), skip courses (e.g., ALL remindersfrom BSC1000 will be excluded.), set days (e.g., choose to only seereminders that are 5 days out), limit reminder amount (e.g., choose toonly see next 5 reminders), and skip completed to-dos (e.g., if remindermarked complete on the third-party reminder service it will be excludedfrom text).

The term “third-party platform” means a party that is a separatebusiness entity from the party using user preferences to access data.Third-party systems include email systems such as Gmail and MicrosoftOutlook, learning management systems, and other data sources.

The phrase “web scraping” means a process of using bots to extractcontent and data from a website. Typically web scraping extractsunderlying HTML code and, with it, data stored in a database.

Over all System Flow

Turning now to FIG. 1, shown is an example flowchart 100 of the systemand method, according to the present invention. Two types ofauthenticated access to the Lazy Texts system 110 are provided. Thefirst type of authenticate access is an authenticated users 102, whichcan only access data associated with the individual users. In anotherexample, the authenticated users 102 can be part of a group of two ormore authenticated users who can access the entire group's data. Thesecond type of authenticated access is authenticated administrators 104,which can access data belonging to all users.

Lazy Texts system 110 is able to access information from its owndatabase 122 and access information from a third-party database 120,e.g., Gmail and Microsoft Outlook, learning management systems, andother data sources.

Next, a scheduled cloud function 130 pulls user data from database 122and third-party information from third-party database 120. The schedulecloud function 130, then shares the data with the user 140. The LazyTexts system can pull information from third-party database 120 by APIcalls, web scrapping, file transfer protocol (FTP), and http methods.The scheduled cloud function algorithmically converts and formats datainto a standardized format to send a message. The data is convertedbased on the user preferences and rules defined for each user. In oneexample, the message is a text message. In another example, the messageis Discord, Facebook Messenger, iMessage, Signal, Slack, Telegram,WhatsApp, WeChat and QQ Messenger, Viber, Line, and Snapchat and otherapps that enable instant messaging. Examples of Lazy Texts user datainclude customizations, reminders, API credentials of linked third partreminder services. The Lazy Texts Admin Data includes reminders,messages, and promotions 150.

FIG. 2 is an example screenshot 200 of a webpage where a first-time usercan sign up for the service or a returning user can sign in to theiraccount, according to the present invention. Shown is a mobile numberfield 202 and captcha 204.

FIG. 3 is a screenshot 300 of example webpages where a user can addand/or edit their settings, according to the present invention. Fieldsshown include nickname 310, received text at 312, time zone 314, showclass names in text 320, select classes to skip, if any, 322, class nameto change 330, new claim names 332 based on 330, receive a next numberof days or assignments 340 (inventors is this correct?), receive thenext number of days or assignments 342 (inventors is this correct?),skip manually completed assignments 350, and save button 360.

After filling out these fields in FIG. 3, the user can select thepreview button 302 to show how the text is converting the data into aSMS message.

Turning to FIG. 4 are a screenshot of an example webpage 400 that a usercan preview the text message 402 that would be received based on thesettings, according to the present invention. Continuing further, FIG. 5is a sample text message 502 a user would receive with upcomingassignments, according to the present invention.

Data Handling

FIG. 6 is a diagram of the data handling process 600, according to thepresent invention. Shown are three types of data. The first type of datais “stored data”, which is data that the examples of that the Lazy Textssystem pulls from the Canvas learning management system and stores inthe systems own database. The second type of data is “pulled data” thatdata pulls from the Canvas learning management system to the Lazy Textssystem but typically does not store. This is typically the data that theLazy Texts system uses. The third type of data is “pushed data” which isdata that examples of the Lazy Texts system pushes to the Canvaslearning management system and typically does not store.

Continuing further, shown are four sources of data with the Canvaslearning management system. The four sources of data are planner items602, 604, and 606, course 612, 614, and 616, profile 622, 624, and 626,and course nickname 632, 634, and 636. The planner items include pulleddata plannable, plannable data, plannable type, content name, course id,submissions, and planner outside.

FIG. 7 is an example table 702 of user preference filtering and anexample table 722 of user preference formatting, according to thepresent invention. For table 702, example preferences as set by the userin FIG. 3 are shown. Preferences shown include “courses to show”,“courses to skip”, “days to remind”, “skip to-dos”, and “time to send.”Likewise, for table 722. example preferences as set by the user in FIG.3 are shown. Preferences shown include “course names”, “limit reminderamount”, “time zone”, and “student name”. Other preferences and tableformats may be used in another example.

Flow Chart

FIG. 8 is a flow chart 800 of the overall process, according to thepresent invention. The process begins in step 802 and immediatelyproceeds to step 804. In step 804, the process receives a user sign-inon website or app. The process continues to step 806.

In step 806, the user verifies their messaging platform e.g. SMS,discord, Facebook messenger, iMessage, Signal, Slack, Telegram, andWhatsapp. For example, the user may sign up with their phone number onthe Lazy Texts app or Lazy Texts website. The user verifies their phonenumber with a 6 digit one-time password texted to their phone. Onceverified, the user links Canvas by selecting their school and all oftheir third-party reminder services. To verify and link the user'saccount, such as Canvas learning management system, they are taken tothe Canvas website to log in and then automatically signed up and takenback to the Lazy Texts app or website. The process continues to step808.

In step 808, the Lazy Texts system receives user customizations,including their preferences for each third-party data source. FIG. 3shows an example user interface. The users can change a course name. Forexample, user can customize course names, changes will be reflected inCanvas through Canvas API. Other customizations include time (e.g., textsent at 5 AM). The Lazy Texts system converts the user's set time to ESTtime based on the time and time zone they set, and stores that EST timein the database. Name (e.g., Hey JOHN DOE, here are your upcoming LazyTexts reminders:). Other customizations include:

-   -   Show Courses (e.g., Biology Assignment: XYZ vs Assignment: XYZ).    -   Customize course name (e.g., Change BSC1101 to Bio).    -   Users can skip Courses (e.g., ALL reminders from BSC1000 will be        excluded).    -   Set Days (e.g., Choose to only see reminders that are 5 days        out).    -   Limit Reminder amount (e.g., Choose to only see next 5        reminders).    -   Skip completed to-dos (IF reminder marked complete on the        third-party reminder service, it will be excluded from text).    -   Birthday (e.g., Happy birthday John Doe! if the birthday is the        same day as the text sent).

Further, the user can set extra reminders including:

-   -   Users can add their own reminders (Name, type, course, date).    -   They can link a reminder to a course they are enrolled in.    -   Users can add reminders that aren't for a specific class        (Academic advisor appointments, registration dates, etc.).    -   Users can share extra reminders with friends.    -   Users can choose to be a part of an extra reminders group for a        certain class to receive extra reminders other classmates have        added.    -   Users can duplicate reminders with customized dates.

Further, the user can update their profile:

-   -   User can manage their linked school/other third-party reminder        services    -   User can pause their text messages (Also done by texting STOP to        the Lazy Texts phone number)

The users can then either choose to set customizations and extrareminders, or not do anything and accept Lazy Texts default settings.Further, the users can see a text preview that shows what theirpersonalized text would look like. The process continues to step 810.

In step 810, the process enters a loop. The Lazy Texts system beginsaccessing third-party data sources via API (application programminginterface) calls, web scrapping, file transfer protocol (ftp), andothers. The process continues to step 812.

In step 812, the reminders are organized by due date/time. The reminderscan be from learning management system such as Canvas, extra reminders,school messages, Lazy Texts messages, email systems (scrape forreminders), calendars (Outlook, Google) and Doctor's appointments etc.The reminders are formatted data from third-party data sources accordingto user preferences into a format compatible with message service. Thefilters may include

-   -   Skip planner items that are marked as submitted or graded in        Canvas.    -   Skip planner items marked as “marked complete” if the user chose        to skip completed to-dos    -   Skip planner items marked with plannable_type of ‘wiki_page’ and        ‘calendar_event’    -   Skip planner items marked with course_id matching to any course        skipped by the user

The text message format may include in any text:

-   -   Advertisements via text message    -   Messages from Lazy Texts    -   Messages from the user's school    -   Happy Birthday! (if applicable)    -   Good luck with your exam today! (if applicable)Normal text        Hey (NAME), here are your upcoming Lazy Texts reminders:        [Today/Tomorrow (if applicable)] Sat, Apr 10, 11:59 PM (ddd, MMM        DD, h:mm A) LZY1000(COURSE ID) Assignment (Reminder type): Do        the thing! (Reminder name)

If no reminders within the next 5 (based on the user's limit reminderscustomization) text says:

-   -   Hey NAME, you have nothing in the next x days,    -   If you want to get ahead, here is your next Lazy Texts reminder:    -   [Today/Tomorrow (if applicable)] Sat, Apr 10, 11:59 PM (ddd, MMM        DD, h:mm A) LZY1000(COURSE ID) Assignment (Reminder type): Do        the thing! (Reminder name)

No reminders in a month

-   -   Hey JOHN DOE, looks like you have nothing coming up for the next        28 days. I'll let you know when something new is assigned!

Flow

-   -   The program is run every hour in EST (America/New York TZ)    -   Queries the list of ACTIVE Lazy Texts users from the database        whose selected time translated to EST is the same as when the        program is run.    -   includes user's customizations and information

For Each User

-   -   Refreshes user's access tokens to Canvas/other services.    -   Validates user's data to ensure they are within defined        constraints (e.g., no more than 8 reminders in the text at a        time).    -   Fetch user's reminder data from all sources.    -   Merge reminders from all sources into one list.    -   Sort the list by date in ascending order.    -   Cut list off based on limit days and limit reminders.    -   Format list of reminders into a text message.    -   Send a text message to the user.    -   Tracks text segments sent to each user by counting characters in        the text message.

The data which has been converted into the message service into themessage service to the mobile device as specified by the mobile devicenumber 814. The process loop checks in step 816, if it should continuerunning based on user preferences. In the case it will continue to run,the process loops back to step 810. Otherwise, the process ends in step818.

Operating Environment

Referring to FIG. 9, is a diagram depicting the operating environment900, according to the present invention. Are third-party servercomputers 932, 934, 936 connected to network, e.g., the Internet 940 ora global communication network. Also show is a Lazy Texts Server 920,which is independent and managed by a separate business entity of servercomputers 932, 934, 936. The Lazy Texts Server 920. The instruction setsand subroutines and process flows described above to manage messagesbetween client devices 912, 914, 916, and 918 may come through the LazyTexts Server 920 or via a separate network. Examples of server computer920, 932, 934, 936 may include, but are not limited to: a personalcomputer, a server computer, a series of server computers, a minicomputer, and a mainframe computer.

The messages received at client devices 912, 914, 916, and 918 as aclient-side application may, e.g., be a standalone application,interface with an email client application, or may be anapplet/application that is executed within email client application ormessaging application. Accordingly, message propagation process may be aserver-based process, a client-side process and/or may be a hybridclient-side/server-based process, which may be executed, in whole or inpart, by client application and by email server application. Examples ofclient devices 912, 914, 916, and 918 may include, but are not limitedto, personal computer, laptop computer, cellular telephone, smartphone,notebook or table computer, and a dedicated network device.

Users 902, 904, 906, and 908 interact through a physical keys andkeyboard, virtual keys and keyboards and other graphical user interfacecomponents such as displays, microphones, and speakers to interact withclient devices 912, 914, 916, and 918.

The various client devices may be directly or indirectly coupled tonetwork 940. For example, a client device may be directly coupled tonetwork 940 via a hardwired network connection. Further, another clientdevice may be wirelessly coupled to network 940 via wirelesscommunication channel established between the client device and wirelessaccess point (i.e., WAP IEEE 802.11a, 802.11b, 802.11g, Wi-Fi, and/orBluetooth device), which may be directly coupled to network 940.

As is known in the art, all of the IEEE 802.11x specifications may useEthernet protocol and carrier sense multiple access with collisionavoidance (i.e., CSMA/CA) for path sharing. The various 802.11xspecifications may use phase-shift keying (i.e., PSK) modulation orcomplementary code keying (i.e., CCK) modulation, for example. As isknown in the art, Bluetooth is a telecommunications industryspecification that allows e.g., mobile phones, computers, and personaldigital assistants to be interconnected using a short-range wirelessconnection.

Client devices 912, 914, 916, and 918 may each execute an operatingsystem, examples of which may include but are not limited to MicrosoftWindows, Apple iOS, Google Android, Linux, BlackBerry OS or a customoperating system.

Information Processing System

Referring now to FIG. 10, this figure is a block diagram illustrating aninformation processing system that can be utilized in non-limitingexamples or embodiments of the present invention. The informationprocessing system 1002 is based upon a suitably configured processingsystem configured to implement one or more embodiments of the presentlyclaimed invention. Any suitably configured processing system can be usedas the information processing system 1002 in embodiments of the presentinvention. The components of the information processing system 1002 caninclude, but are not limited to, one or more processors or processingunits 1004, a system memory 1006, and a bus 1008 that couples varioussystem components including the system memory 1006 to the processor1004.

The bus 1008 represents one or more of any of several types of busstructures, including a memory bus or memory controller, a peripheralbus, an accelerated graphics port, and a processor or local bus usingany of a variety of bus architectures. By way of example, and notlimitation, such architectures include Industry Standard Architecture(ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA)bus, Video Electronics Standards Association (VESA) local bus, andPeripheral Component Interconnects (PCI) bus.

The system memory 1006 can also include computer system readable mediain the form of volatile memory, such as random access memory (RAM) 1010and/or cache memory 1012. RAM 1010 may include emulator(s) 1010.

The information processing system 1002 can further include otherremovable/non-removable, volatile/non-volatile computer system storagemedia. By way of example only, a storage system 1014 can be provided forreading from and writing to a non-removable or removable, non-volatilemedia such as one or more solid state disks and/or magnetic media(typically called a “hard drive”). A magnetic disk drive for readingfrom and writing to a removable, non-volatile magnetic disk (e.g., a“floppy disk”), and an optical disk drive for reading from or writing toa removable, non-volatile optical disk such as a CD-ROM, DVD-ROM orother optical media can be provided. In such instances, each can beconnected to the bus 1008 by one or more data media interfaces. Thememory 1006 can include at least one program product having a set ofprogram modules that are configured to carry out the functions of anembodiment of the present invention.

Program/utility 1016, having a set of program modules 1018, may bestored in memory 1006 by way of example, and not limitation, as well asan operating system, one or more application programs, other programmodules, and program data. Each of the operating system, one or moreapplication programs, other program modules, and program data or somecombination thereof, may include an implementation of a networkingenvironment. Program modules 1018 generally carry out the functionsand/or methodologies of embodiments of the present invention.

The information processing system 1002 can also communicate with one ormore external devices 1020 such as a keyboard, a pointing device, adisplay 1022, etc.; one or more devices that enable a user to interactwith the information processing system 1002; and/or any devices (e.g.,network card, modem, etc.) that enable computer system/server 1002 tocommunicate with one or more other computing devices. Such communicationcan occur via I/O interfaces 1024. Still yet, the information processingsystem 1002 can communicate with one or more networks such as a localarea network (LAN), a general wide area network (WAN), and/or a publicnetwork (e.g., the Internet) via network adapter 1026. As depicted, thenetwork adapter 1026 communicates with the other components ofinformation processing system 1002 via the bus 1008. Other hardwareand/or software components can also be used in conjunction with theinformation processing system 1002. Examples include, but are notlimited to: microcode, device drivers, redundant processing units,external disk drive arrays, RAID systems, tape drives, and data archivalstorage systems.

NON-LIMITING EXAMPLES

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method, or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electromagnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention have been discussed above withreference to flowchart illustrations and/or block diagrams of methods,apparatus (systems) and computer program products according to variousembodiments of the invention. It will be understood that each block ofthe flowchart illustrations and/or block diagrams, and combinations ofblocks in the flowchart illustrations and/or block diagrams, can beimplemented by computer program instructions. These computer programinstructions may be provided to a processor of a general purposecomputer, special purpose computer, or other programmable dataprocessing apparatus to produce a machine, such that the instructions,which execute via the processor of the computer or other programmabledata processing apparatus, create means for implementing thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The description of the present application has been presented forpurposes of illustration and description, but is not intended to beexhaustive or limited to the invention in the form disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the invention.The embodiment was chosen and described in order to best explain theprinciples of the invention and the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

NON-LIMITING EXAMPLES

All references cited herein are expressly incorporated by reference intheir entirety. It will be appreciated by persons skilled in the artthat the present disclosure is not limited to what has been particularlyshown and described herein above. In addition, unless mention was madeabove to the contrary, it should be noted that all of the accompanyingdrawings are not to scale. There are many different features to thepresent disclosure and it is contemplated that these features may beused together or separately. Thus, the disclosure should not be limitedto any particular combination of features or to a particular applicationof the disclosure. Further, it should be understood that variations andmodifications within the spirit and scope of the disclosure might occurto those skilled in the art to which the disclosure pertains.Accordingly, all expedient modifications readily attainable by oneversed in the art from the disclosure set forth herein that are withinthe scope and spirit of the present disclosure are to be included asfurther embodiments of the present disclosure.

What is claimed is:
 1. A method for providing user-control messageservice comprising: accessing, by a server, data in a third-party formatfrom a third-party server, where the server and the third-party serverare controlled by different business entities; filtering the data in thethird-party format which has been accessed according to userpreferences, the user preferences including a mobile device identifier;converting the data in the third-party format into a format compatiblewith the message service, wherein the format is specified by the userpreferences; and sending the data which has been converted into themessage service to the mobile device as specified by the mobile deviceidentifier.
 2. The method of claim 1, wherein the message service is oneof a short message service (SMS) MMS, GroupMe, FB Messenger, and a voicecall.
 3. The method of claim 1, wherein the converting the data in thethird-party format into a format compatible with the message service isone of a SMS protocol or an instant message for receipt by a messagingapp.
 4. The method of claim 3, wherein the sending the data which hasbeen converted into the SMS format or instant message to the mobiledevice as specified by the mobile device identifier.
 5. The method ofclaim 4, further comprising: sending the data which has been convertedinto the SMS format to an SMS gateway or using a CPaaS API to send tothe mobile device as specified by the mobile device identifier.
 6. Themethod of claim 1, wherein the accessing is performed using one or moreof API calls, web scrapping, file transfer protocol (FTP), and httpmethods.
 7. The method of claim 1, wherein the user preferences forfiltering includes one or more of show courses, skip courses, set days,maximum assignments, maximum days, skipped classes, skip completed andskip completed to-dos.
 8. The method of claim 1, wherein the userpreferences for filtering includes one or more of planner is empty, timeand time zone, active status, texts paused, and skipped days of week. 9.The method of claim 1, wherein the user preferences for formattingincludes one or more of class, customized course names, birthday, timeformat, time-zone, name, and limit reminder amount.
 10. The method ofclaim 1, wherein the data in the third-party format from the third-partyserver includes a learning management system, email system and otherdata sources.
 11. The method of claim 1, further comprising: accessing,by the server, data in an additional third-party format from anadditional third-party server, where the server and the additionalthird-party server are controlled by different business entities;filtering the data in the additional third-party format which has beenaccessed according to user preferences, the user preferences including amobile device identifier; converting the data in the additionalthird-party format into a format compatible with the message service,wherein the format is specified by the user preferences; and sending thedata which has been converted into the message service.
 12. The methodof claim 1, wherein the accessing, by the server, data in thethird-party format from the third-party server, further includesaccessing reminders from a syllabus using an API or optical characterrecognition.
 13. The method of claim 1, further comprising: receiving arequest from a plurality of users to join a collaborative group; whereinthe filtering the data in the third-party format which has been accessedaccording to user preferences, the user preferences including a mobiledevice identifier for each of the plurality of users; and wherein thesending the data which has been converted into the message serviceincludes sending to the mobile devices as specified by the mobile deviceidentifier for each of the plurality of users.
 14. A method forproviding user-control message service for a plurality of data sourcescomprising: for each data source in a plurality of data sources,performing accessing, by a server, data from one of the plurality ofdata sources in a third-party format from a third-party server, wherethe server and the third-party server are controlled by differentbusiness entities; and filtering the data in the third-party formatwhich has been accessed according to user preferences, the userpreferences including a mobile device identifier; converting the datafrom each data source in the plurality of data sources, in thethird-party format into a homogeneous format compatible with the messageservice, wherein the homogenous format is specified by the userpreferences; and sending the data from each data source in the pluralityof data sources, which has been converted into the message service tothe mobile device as specified by the mobile device identifier.
 15. Themethod of claim 1, wherein the converting the data from each data sourcein the plurality of data sources, in the third-party format into thehomogeneous format compatible with the message service includesconverting into the homogeneous format with a number of total remindersmerged into a single message as specified by the user preferences.
 16. Adevice for providing user-control message service, comprising: aprocessor device; and a memory operably coupled to the processor deviceand storing computer-executable instructions causing: accessing, by aserver, data in a third-party format from a third-party server, wherethe server and the third-party server are controlled by differentbusiness entities; filtering the data in the third-party format whichhas been accessed according to user preferences, the user preferencesincluding a mobile device identifier; converting the data in thethird-party format into a format compatible with the message service,wherein the format is specified by the user preferences; and sending thedata which has been converted into the message service to the mobiledevice as specified by the mobile device identifier.
 17. The device ofclaim 16, wherein the message service is one of a short message service(SMS) MIMS, GroupMe, FB Messenger, and a voice call.
 18. The device ofclaim 16, wherein the converting the data in the third-party format intoa format compatible with the message service is one of a SMS protocol oran instant message for receipt by a messaging app.
 19. The device ofclaim 18, wherein the sending the data which has been converted into theSMS format or instant message to the mobile device as specified by themobile device identifier.
 20. The device of claim 16, furthercomprising: accessing, by the server, data in an additional third-partyformat from an additional third-party server, where the server and theadditional third-party server are controlled by different businessentities; filtering the data in the additional third-party format whichhas been accessed according to user preferences, the user preferencesincluding a mobile device identifier; converting the data in theadditional third-party format into a format compatible with the messageservice, wherein the format is specified by the user preferences; andsending the data which has been converted into the message service.